| автор перевода: Илья Михайлов | Предыдущая | Следующая | Оглавление |
Flash Player 6.
[dynamic] classclassName[ extendssuperClass][ implementsinterfaceName[,interfaceName... ] ] { // class definition here }
Примечание: Для того, чтобы использовать это ключевое слово, вы должны выставить ActionScript 2.0 и Flash Player 6 или более поздний в настройках публикации FLA файла. Это ключевое слово поддерживается, только в внешних, подгружаемых скриптовых файлах, не в скриптах, написанных в панели Actions.
className Полное корректное имя класса.
superClass Имя класса, от которого наследуется className. Необязательный параметр.
interfaceName Имя интерфейса, методы которого должен выполнять className. Необязательный параметр.
Определяет класс, позволяющий вам реализовывать объекты, на которые распостраняются методы и свойства, определенные вами. Например, если вы разрабатываете систему контроля за счетами, вы может создать класс "счет", который будет определять все методы и свойства, которые имеет каждый счет. Затем вы можете использовать команду new invoice() для создания объекта "счет".
Имя класса должно совпадать с именем внешнего файла, содержащего этот класс. Имя внешнего файла должно быть именем класса с расширением .as. Например, если имя вашего класса "Student", файл с определением этого класса должен называться "Student.as".
Если класс находится внутри пэкэджа (package), при объявлении класса должно использоваться полное корректное имя класса в следующей форме: base.sub1.sub2.MyClass (см. также "Using packages" в Using ActionScript in Flash). Структура директорий, в которой находится AS файл, содержащий класс, должна совпадать с структурой пэкэджа, например base/sub1/sub2/MyClass.as (см. также: "Understanding the classpath" в Using ActionsScript in Flash). Если класс определен в форме “class MyClass,” он находится в пэкадже по умолчанию а файл MyClass.as будет расположен на верхнем уровне той же директории.
По этой причине, необходимо тщательно планировать структуру директорий перед тем, как вы начнете создавать классы. Иначе, если вы решите переместить файлы с классами после того, как вы создали их, вам нужно будет исправлять все объявления классов.
Вы не можете объединить определения классов, также вы не можете определить дополнительные классы без определения класса.
Чтобы показать, что объекты могут добавлять и получать доступ к динамическим свойствам, используйте при объявлении класса ключевое слово dynamic.Для того, чтобы указать, что класс имплементирует интерфейс, используйте ключевое слово implements. Чтобы создать подклассы класса, используйте ключевое слово extends.(Класс может расширять(extend) только один класс, но может имплементировать нескольких интерфейсов). Вы можете использовать одновременно implements и extends. В следующем примере показано, как используются implements и extends:
class C implements Interface_i, Interface_j // OK class C extends Class_d implements Interface_i, Interface_j // OK class C extends Class_d, Class_e // not OK
См. также Using ActionScript in Flash.
В следующем примере создается класс, названный "Plant". Конструктор класса Plant принимает два параметра:
// Filename Plant.as
class Plant {
// Define property names and types
var leafType:String;
var bloomSeason:String;
// Following line is constructor
// because it has the same name as the class
function Plant(param_leafType:String, param_bloomSeason:String) {
// Assign passed values to properties when new Plant object is created
this.leafType = param_leafType;
this.bloomSeason = param_bloomSeason;
}
// Create methods to return property values, because best practice
// recommends against directly referencing a property of a class
function getLeafType():String {
return leafType;
}
function getBloomSeason():String {
return bloomSeason;
}
}
В внешнем файле со скриптом или в панели Actions используйте опреатор new для того, чтобы создать объект Plant.
var pineTree:Plant = new Plant("Evergreen", "N/A");
// Confirm parameters were passed correctly
trace(pineTree.getLeafType());
trace(pineTree.getBloomSeason());
В следующем примере создается класс с именем ImageLoader. Конструктор класса ImageLoader принимает три параметра:
// Filename ImageLoader.as
class ImageLoader extends MovieClip {
function ImageLoader(image:String, target_mc:MovieClip, init:Object) {
var listenerObject:Object = new Object();
listenerObject.onLoadInit = function(target) {
for (var i in init) {
target[i] = init[i];
}
};
var JPEG_mcl:MovieClipLoader = new MovieClipLoader();
JPEG_mcl.addListener(listenerObject);
JPEG_mcl.loadClip(image, target_mc);
}
}
Во внешнем файле со скриптом или в панели Actions, используйте оператор new, чтобы создать объект ImageLoader.
var jakob_mc:MovieClip = this.createEmptyMovieClip("jakob_mc", this.getNextHighestDepth());
var jakob:ImageLoader = new ImageLoader("http://www.macromedia.com/devnet/mx/blueprint/articles/nielsen/spotlight_jnielsen.jpg", jakob_mc, {_x:10, _y:10, _alpha:70, _rotation:-5});
dynamic, extends, implements, import, interface, new, Object.registerClass()
| Посмотреть комментарии LiveDocs | Предыдущая | Следующая | Оглавление | |